package com.xtoad.ecms.baseinfo.service;

import com.xtoad.ecms.baseinfo.dto.RoleDTO;

import java.util.List;

/**
 * 角色Service
 *
 * @author xtoad
 * @date 2020/05/29
 */
public interface IRoleService {

    /**
     * 根据id查询角色
     *
     * @param id 角色id
     * @return 查询结果
     */
    RoleDTO getRoleById(final Long id);

    /**
     * 根据编码查询角色
     *
     * @param code 角色编码
     * @return 查询结果
     */
    List<RoleDTO> getRoleByCode(final String code);

    /**
     * 根据角色名称查询角色
     *
     * @param name 角色名称
     * @return 查询结果
     */
    List<RoleDTO> getRoleByName(final String name);

    /**
     * 查询全部角色，不分页
     *
     * @return 查询结果
     */
    List<RoleDTO> getAllRole();

    /**
     * 新增角色
     *
     * @param roleDTO 保存对象
     * @return 新增结果
     */
    RoleDTO insert(final RoleDTO roleDTO);

    /**
     * 删除角色
     *
     * @param dto 删除对象
     */
    void delete(final RoleDTO dto);

    /**
     * 根据Id删除角色
     *
     * @param id 删除对象id
     */
    void deleteById(final Long id);

    /**
     * 更新角色
     *
     * @param roleDTO 更新对象
     * @return 更新结果
     */
    RoleDTO update(final RoleDTO roleDTO);

    /**
     * 批量新增角色
     *
     * @param roleDTOList 新增对象
     * @return 新增结果
     */
    List<RoleDTO> batchInsert(final List<RoleDTO> roleDTOList);

    /**
     * 批量删除角色
     *
     * @param roleDTOList 删除对象
     */
    void batchDelete(final List<RoleDTO> roleDTOList);

    /**
     * 批量更新角色
     *
     * @param roleDTOList 更新对象
     * @return 更新结果
     */
    List<RoleDTO> batchUpdate(final List<RoleDTO> roleDTOList);
}
